#ifndef QSETINGBUTTONBASE_H
#define QSETINGBUTTONBASE_H

#include <QWidget>
#include <QBaseLib.h>
#include "QWidgetBase.h"
typedef enum _qKeyNumber{
	KEY_NUM_0 = 0,
	KEY_NUM_1,
	KEY_NUM_2,
	KEY_NUM_3,
	KEY_NUM_4,
	KEY_NUM_5,
	KEY_NUM_6,
	KEY_NUM_7,
	KEY_NUM_8,
	KEY_NUM_9,
}Q_KeyNumber;

class QSettingButtonBase : public QWidgetBase
{
    Q_OBJECT
public:
	/**
     * 初始化构造函数
     *
     * @param -
     * @note -
     * @return -
     */
    explicit QSettingButtonBase(Q_KeyNumber key,QWidgetBase *parent = nullptr);
	
	/**
     * 初始化构造函数
     *
     * @param - icon:	图标路径 - 不能为空
     * @param - tips1:	提示信息label 比如 本机信息 -不能为空
     * @param - tips2:	提示信息label 比如 请按1号键查看 - 可以为空
     * @param - num:	数字显示label - 可以为空
     * @note -
     * @return -
     */
    explicit QSettingButtonBase(Q_KeyNumber key,QString icon,QString num_icon, QString tips1,QString tips2, QWidgetBase *parent = nullptr);
	//析构函数
    virtual ~QSettingButtonBase();
	//创建UI
    void createUI();
	//初始化
    void initUI(QString icon,QString num_icon, QString tips1,QString tips2);
	//设置图片和显示文字
    void SetData(QString icon,QString num_icon, QString tips1,QString tips2);
    // 设置此控件是几号数字
    void setNumber(Q_KeyNumber key);
	
	// 设置选中
	void SetChecked();
	// 移除选中
	void RemoveChecked();
	
	/**
     * 初始化信号关联
     *
     * @param -
     * @note -
     * @return -
     */
	void initConnect();
	
	/**
     * 窗口大小发生变化自动调用虚函数
     *
     * @param -
     * @note -
     * @return -
     */
	void resizeEvent(QResizeEvent *event) override;
	// 绘图事件
	void paintEvent(QPaintEvent *event) override;
	// 拦截触摸事件
	bool event(QEvent *event) override;
	
	

private slots:
	
    

private:
	// 图标显示label
	QGroupLabel*		icon_label = nullptr;
	// 提示信息label 比如 本机信息
	QGroupLabel*		tips_label_1 = nullptr;
	// 提示信息label 比如 请按1号键查看
	QGroupLabel*		tips_label_2 = nullptr;
	// 数字图标显示label
	QGroupLabel*		num_icon_label = nullptr;
	// 创建一个窗口,不然无法设置背景,qt可能把这个当作主窗口去了，暂时先这样
	QWidget *			m_pQWidget = nullptr;
	int 				tips2__;
	int					m_upSize=0;
	// 是否绘制矩形边框
	bool				m_IsDrawRectangle = false;
	// 按下发送键盘消息
	Q_KeyNumber 		m_keyNumber;
	
	

};

#endif // QSETINGBUTTONBASE_H
